// samsting : this file is auto create.

#ifndef ALIYUN_Ons_OnsTopicStatusResponse_H_
#define ALIYUN_Ons_OnsTopicStatusResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ons {

class OnsTopicStatusResponse : public AcsResponse {
public:
  OnsTopicStatusResponse();

  class Data {
    friend class OnsTopicStatusResponse;
  public:

    class TopicQueueOffset {
      friend class OnsTopicStatusResponse;
      friend class Data;
    public:
      const string& GetTopic(void) const;
      const string& GetBrokerName(void) const;
      int  GetQueueId(void) const;
      int64 GetMinOffset(void) const;
      int64 GetMaxOffset(void) const;
      int64 GetLastUpdateTimestamp(void) const;
    private:
      string Topic_;
      string BrokerName_;
      int    QueueId_;
      int64  MinOffset_;
      int64  MaxOffset_;
      int64  LastUpdateTimestamp_;
    }; // TopicQueueOffset 

    const std::vector<TopicQueueOffset>& GetOffsetTable(void) const;
    int64 GetTotalCount(void) const;
    int64 GetLastTimeStamp(void) const;
  private:
    std::vector<TopicQueueOffset> OffsetTable_;
    int64  TotalCount_;
    int64  LastTimeStamp_;
  }; // Data 

  const Data& GetData(void) const;
  const string& GetHelpUrl(void) const;

private:
  Data Data_;
  string HelpUrl_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ons {

#endif // #ifndef ALIYUN_Ons_OnsTopicStatusResponse_H_

// end of file 
